﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;

namespace XMLJoiner
{
    public partial class Form1 : Form
    {
        string folderData;
        public Form1()
        {
            InitializeComponent();
        }

        private void seleccionaCarpeta(object sender, EventArgs e)
        {
            folderBrowserDialog1.SelectedPath = this.folderData;
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                this.folderData = folderBrowserDialog1.SelectedPath;
            }
        }
        private void iniciar(object sender, EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            string salida = this.folderData+ "\\"+this.nombreArchivo.Text;
            XmlTextWriter xmltw = new XmlTextWriter(salida, Encoding.UTF8);
            xmltw.Formatting = Formatting.Indented;
            xmltw.WriteStartDocument();
            xmltw.WriteStartElement("PointsOfInterest");
            xmltw.WriteElementString("Name", this.nombreCategoria.Text);
            xmltw.WriteElementString("Icon", "");
            xmltw.WriteElementString("Zoom", "3");
            xmltw.WriteStartElement("Points");
            string[] archivos=System.IO.Directory.GetFiles(this.folderData+ "\\");
            string direccion, latitud, longitud;
            for (int i = 0; i < archivos.Length; i++)
            {
                try
                {
                    if (archivos[i] == salida)
                        continue;
                    doc.Load(archivos[i]);
                    direccion = doc.SelectSingleNode("//direccion").InnerText;
                    latitud = doc.SelectSingleNode("//latitud").InnerText;
                    longitud = doc.SelectSingleNode("//longitud").InnerText;
                    latitud=latitud.Replace(",", ".");
                    longitud=longitud.Replace(",", ".");
                    xmltw.WriteStartElement("Point");
                        xmltw.WriteElementString("Address", direccion);
                        xmltw.WriteStartElement("Coordinates");
                            xmltw.WriteElementString("Latitude", latitud);
                            xmltw.WriteElementString("Longitude", longitud);
                        xmltw.WriteEndElement();
                    xmltw.WriteEndElement();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message+ex.StackTrace);
                    MessageBox.Show("No se pudo generar el archivo");
                    return;
                }
            }
            try
            {
                xmltw.WriteEndElement();
                xmltw.WriteEndElement();
                xmltw.WriteEndDocument();
                xmltw.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + ex.StackTrace);
                MessageBox.Show("No se pudo generar el archivo");
                return;
            }
            MessageBox.Show("Archivo generado");

        }
    }
}
